package com.zmn.oms.dubbo.interfaces.redistridute;

import com.zmn.common.dto2.ResponseDTO;
import com.zmn.oms.common.dio.redistribute.OrderWorkRedistributeApplyDIO;
import com.zmn.oms.common.dio.redistribute.OrderWorkRedistributeAuditDIO;
import com.zmn.oms.common.dio.redistribute.OrderWorkRedistributeModifyDIO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import javax.validation.constraints.NotNull;

/**
 * 类描述: 改派业务操作远程实现类
 *
 * @author: HuangChao
 * @since: 2022/05/09 18:43
 */
@Api(value = "改派申请操作接口", tags = {"改派申请操作"})
public interface OrderWorkRedistributeModifyRemoteService {

    @ApiOperation(value = "新增改派申请", response = ResponseDTO.class, tags = {"改派申请操作"})
    ResponseDTO addRedistributeApply(@NotNull(message = "新增改派申请数据不能为空")
                                     @ApiParam(value = "新增改派申请数据", required = true)
                                             OrderWorkRedistributeApplyDIO applyDIO);

    @ApiOperation(value = "取消改派申请", response = ResponseDTO.class, tags = {"改派申请操作"})
    ResponseDTO cancelRedistributeApplyByRedistributeId(@NotNull(message = "取消改派申请数据不能为空")
                                                        @ApiParam(value = "取消改派申请数据", required = true)
                                                                OrderWorkRedistributeModifyDIO cancelDIO);

    @ApiOperation(value = "接受转单求助", response = ResponseDTO.class, tags = {"改派申请操作"})
    ResponseDTO redistributeTake(@NotNull(message = "接受转单求助数据不能为空")
                                 @ApiParam(value = "接受转单求助数据", required = true)
                                         OrderWorkRedistributeModifyDIO redistributeTakeDIO);

    @ApiOperation(value = "主管审核操作", response = ResponseDTO.class, tags = {"改派申请操作"})
    ResponseDTO supervisorAuditRedistribute(@NotNull(message = "审核数据不为空")
                                @ApiParam(value = "审核数据", required = true)
                                                     OrderWorkRedistributeAuditDIO auditDIO);


}
